#ifndef GRAPH_HPP_
#define GRAPH_HPP_

#include <vector>
#include <include/edge.hpp>
#include <string>

class Graph {

private:
    int numberOfVertices;
    std::vector<Edge*> * listOfEdges;
    std::vector<Vertex*> * listOfVertices;
    int graphsDiameter;
    int lowerBound;

public:
    Graph();
    ~Graph();

    std::vector<int> graphInVector;
    int getNumberOfVertices();
    std::vector<Edge*> * getListOfEdges();
    std::vector<Vertex*> * getListOfVertices();
    void setNumberOfVertices(int);
    void addEdge(Edge* edge);
    void addVertex(Vertex * vertex);
    int getGraphsDiameter();    
    void setGraphsDiameter(int diameter);
    int getLowerBound();
    int setLowerBound(int bound);
};

#endif /* GRAPH_HPP_ */
